package com.ushio.capsuleservice.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ushio.capsuleservice.model.entity.Plan;

import java.util.List;

/**
 * 计划服务接口
 */
public interface PlanService extends IService<Plan> {
    
    /**
     * 创建计划
     * @param plan 计划信息
     * @return 创建的计划
     */
    Plan createPlan(Plan plan);
    
    /**
     * 根据用户ID获取计划列表
     * @param userId 用户ID
     * @return 计划列表
     */
    List<Plan> getPlansByUserId(Long userId);
    
    /**
     * 根据ID获取计划详情
     * @param planId 计划ID
     * @return 计划详情
     */
    Plan getPlanById(Long planId);
    
    /**
     * 更新计划
     * @param planId 计划ID
     * @param plan 计划信息
     * @return 更新的计划
     */
    Plan updatePlan(Long planId, Plan plan);
    
    /**
     * 删除计划
     * @param planId 计划ID
     * @return 是否删除成功
     */
    boolean deletePlan(Long planId);
    
    /**
     * 批量更新计划
     * @param plans 计划列表
     * @return 是否更新成功
     */
    boolean batchUpdatePlans(List<Plan> plans);
    
    /**
     * 为计划绑定容器
     * @param planId 计划ID
     * @param containerId 容器ID
     * @return 是否绑定成功
     */
    boolean bindContainer(Long planId, Long containerId);
    
    /**
     * 解绑计划中的容器
     * @param planId 计划ID
     * @param containerId 容器ID
     * @return 是否解绑成功
     */
    boolean unbindContainer(Long planId, Long containerId);
}